home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MACD 5
/
MACD 5.bin
/
workbench
/
tools
/
czesc_2
/
ispell-3.3ljr
/
interfaces
/
guispell-1.1
/
guispell.doc
< prev
next >
Wrap
Text File
|
1992-09-27
|
13KB
|
295 lines
Welcome to GUISpell-1.1 by Loren J. Rittle (rittle@comm.mot.com).
Please note that my email address has changed to rittle@comm.mot.com
from l-rittle@uiuc.edu. Mail addressed to l-rittle@uiuc.edu is
currently being forwarded to my new address, but will not be for
much longer.
[Warning: you must have AmigaOS release 2.04 (with ARexx running) or
later to use GUISpell. This program makes use of many 2.04 features
and there will never be a version of GUISpell that works with pre-2.04.]
GUISpell is a graphical front end to ISpell-3.1ljr (or later) [with
ARexx server mode/port added by yours truly] or to any spelling
checker that adheres to the standard ``Spell Checker ARexx Interface''
as first described in ISpell documentation and more recently in a
UseNet message posted by myself on `Mon, 23 Mar 92 10:32:37 GMT' to
comp.sys.amiga.applications (see file, entitled usenet_posts, which
contains the three messages I posted to UseNet on the subject).
This is the second public release of GUISpell. This software package is
Copyright © 1991, 1992 Loren J. Rittle (rittle@comm.mot.com)
GUISpell is now covered under the GNU General Public License which
is included in the file COPYING. Please read this license if you
aren't familiar with the terms. Basically, use and enjoy. Hack on
it and enjoy. Share the software with your friends and let them
enjoy. Just be sure to make the source code available to anyone
you pass a binary on to.
[Although this package works closely with ISpell (or some other spell
checker backend) via ARexx, it is a completely separate product with
a different original author and different use license. The fact that
it may be included with ISpell is irrelevant.]
DISCLAIMER:
This software is provided 'as-is', without warranty of any kind,
either expressed or implied. In no event will I, Loren J. Rittle,
be liable for direct, indirect, incidental or consequential damages
or data loss resulting from the use or application of this software.
The entire risk as to the results and performance of this software
is assumed by you.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Special thanks to Mike Schwartz (mykes@amiga0.sf-bay.org) for his PD
GadTools Example that was posted to alt.sources.amiga on `11 Nov 91
12:14:43 PST'. Thanks so much Mike, your example inspired me to write
this!
I also wish to thank Chris A. Wichura (caw@miroc.chi.il.us) for being
a beta tester and for writing some TurboText macros that play with
ISpell and GUISpell. Thanks to Eddy Carroll for Small.a (I now use
cres.o, but thanks). Thanks to Michael Jansson for smallIFFparse (a
sub-set of IFFparse that is Freely Redistributable) and sample code.
Thanks to Radical Eye Software for MinRexx (which is used almost
unchanged in ISpell and with some modification to allow an application
to send ARexx commands and receive string responses in GUISpell).
Thanks finally to people who worked on the Amiga port of ISpell before
I received it and added the ARexx Server Mode:
Luis Soltero
Tomas Rokicki of Radical Eye Software
Although I said before there would only be one such release of GUISpell:
This is the second public release of GUISpell. The reason is that
not enough interest in a real supported version of GUISpell was
apparent. The fact I just moved from the schooling world to the
working world has a bit to do with this as well... :-)
Thanks to the many people who wrote in response to GUISpell 1.0.
This second released version is almost the same as 1.0 with a
few new ARexx commands ('jump' to new public screen) and is
now licensed under the GNU General Public License. If you have
found the work I have done on ISpell (general enhancements and
addition of ARexx port) and GUISpell (my original work) to be of
great use to you, then just be happy to know that I needed to
do all of this for myself anyways since I'm such a lousy speller
and needed the damn tools myself. :-) If you really feel the
need to do something nice for me, consider buying more Motorola
products so my stock will go up... <grin>
Please send information about any programs (or the actual macros) you
have made or make to interface with this package: ISpell and GUISpell
(if you look at the examples that I provide, you will note that
requests to 'IRexxSpell' and 'GUISpell' are intertwined --- it is now
assumed that if you have ISpell, you will also have GUISpell). Please
give yourself credit in the macros' header comment. I will include
them in a future release of ISpell / GUISpell.
Every interface to ISpell / GUISpell that I know of is currently included
in this package except: I have heard of a set of macros that play with
ProWrite. I would like them, so I can include them in this package.
Currently, GUISpell makes no attempt to fire up ISpell, thus you must
make sure that it is up and running before GUISpell tries to request
ISpell services. If you forget to start ISpell, currently the screen
will flash when GUISpell tries to send ISpell a message. You may
start up ISpell and retry the GUISpell operation, no harm done...
This is a rough manual to GUISpell:
GUISpell - The GUI:
These are brief notes to get you going, play around a bit.
This release of GUISpell only supports public screens as
follows: first try to open on CED's screen if available,
else try to open on WorkBench screen.
The JUMP ARexx command can later be used to move GUISpell to a new screen.
Lookup Style-
Spell: uses address 'IRexxSpell' check <current word in user text area>
to generate a list of replacement words in the list view area
when a `check' is requested (see below).
Reg exp: uses address 'IRexxSpell' lookup ...
Exact: uses address 'IRexxSpell' quickcheck ...
Auto-Clip-
[If turned on]
Turns on the clipboard hooks! When another application places text
IFF data into the clipboard, GUISpell will take the new data from the
clipboard and place it into the user text area. The new data is then
checked with the currently selected Lookup Style. There is a discriminator
filter that will not latch new data if it looks like more than one word.
In cases that are discriminated against, the user must manually invoke
the `from clip' operation by hitting the From Clip button. This mode works
great with Snap's ability to snap a word into the clipboard.
Likewise, when the user selects a replacement word from the list view area,
the word is transferred to the clipboard.
Add button-
Adds the current word in the user text area to the personal dictionary,
using the address 'IRexxSpell' add ... command of ISpell.
[If no personal dictionary was found at startup time, then one is created
by ISpell. Consult ISpell documentation, as I think that there may be
some differences based upon version. The version I currently use likes to
create and find the personal dictionary in the directory pointed to by
env:HOME and then in S: (if env:HOME is not set).]
User text area-
There are many ways that this field can be set. The most direct way is
for the user to click inside the field and type new data. Standard
Amiga-Q/Amiga-X handling is performed. Hitting return while the text
cursor is anywhere in the field will start a spell check with the currently
set Lookup Style.
Do button-
Alternate way to start a spell check with the currently set Lookup Style.
From Clip button-
The manual way to get data from the clipboard. The new data is then
checked with the current Lookup Style. There is a discriminator
filter that will not *check* (note how this is different from the
discriminator on the auto-clip action) new data if it looks like more than
one word. In cases that are discriminated against, the user must manually
invoke the `Do' operation by hitting the Do button.
To Clip button-
The manual way to put data into the clipboard. The current text in the
user text area is transferred to the clipboard.
List View area-
The user can view available replacement words after a check is completed
by using the available scoll bar. If a word is clicked upon, then it
is transferred to the user text area (a REXX call back and an auto-clip action
may take place also).
This area can be hidden from view with the ZOOM gadget. It is
restored in the same manner as hiding, another click on the ZOOM
gadget.
The first entry in the list view is a solo character form the table below
(OR "yes" or "no", if in exact mode):
[This is a temp kludge. See future issues below. -Loren]
[Excerpt taken from man/ispell.1:]
If the word was found in the main dictionary, or your personal dictionary,
then the line contains only a '*'. If the word was found through suffix
removal, then the line contains a '+', a space, and the root word. If the
word is not in the dictionary, but there are near misses, then the line
contains an '&', a space, and a list of the near misses separated by
spaces.
Also, each near miss is capitalized the same as the input word if unless
such capitalization is illegal; in the latter case each near miss is
capitalized correctly according to the dictionary. Finally, if the word
neither appears in the dictionary, and there are no near misses, then the
line contains only a '#'. This mode is also suitable for interactive use
when you want to figure out the spelling of a single word.
GUISpell - The ARexx interface:
[This public release of GUISpell only supports one ARexx port name.
The name of the port is 'GUISpell'.]
CHECK <word>
Inserts <word> into the user's edit window and initiates an async
spell check upon the word. The list view is updated once the request
has been satisfied by ISpell. Returns the string, "ok".
NOTE: Returns right after initiating the spell request. GUISpell
doesn't wait for the return from ISpell. Use the IRexxSpell interface
if you want to directly spell check a word. Currently, the lookup style
is always `Spell' (even if the user has set some other mode via the
GUI).
JUMP <public screen name>
Tries to close the current GUISpell window and reopen on the named
public screen.
CURRENTTEXT
Returns, in string form, the current user selected text (i.e. the
text in the user's edit window).
CHECKCALLBACKHOOK <path:path/.../file.rexx> <parameters>
If a check call back hook is not already present, this ARexx message
causes GUISpell to install a call back hook that is activated ONCE
AND ONLY ONCE when a user clicks on a replacement word.
Returns the string "installed" or "notinstalled" depending upon if
a hook could be installed.
NOTE: Currently, the rexx call back with parameters should be less than
512 bytes of data. If a request to install a call back with more than
512 bytes of data is found, it will fail with a "notinstalled" return.
VERSION
A short version string is returned with a list of all supported ARexx
commands.
EXIT
Causes GUISpell to terminate after replying to the request.
Returns the string "bye".
WARNING: I did find a nasty bug in Snap 1.61 that *will* cause a
system crash if the IFF text in the clipboard has an ANNO chunk after
the the data chunk! Mail has been sent to Snap's author, but after
months, I still haven't heard a reply. Surprisingly, ASDG's cb2rx has
a problem (not a crash inducing error) with ANNO chunks in IFF text
also! Needless to say, I don't put ANNO chunks in the IFF files
anymore.
Features on the WishList:
Ability to specify which public screen to open on at startup time.
Move (jump) between public screens via ARexx and GUI.
Support for more than one GUISpell being open (ARexx port stuff fails
currently in the free public release) and ability to name the ARexx
port GUISpell should use.
Ability to specify name of backend spell server's ARexx port to
connect to a startup time and dynamically via GUI and ARexx.
Ability to start a backend spell server via GUI.
Support for user specified window/zoom coordinates.
More power exposed to ARexx interface.
True `hide window' state (ARexx or commodity HotKey brings back) in
addition to `zoom window'.
Fix of the List View Solo Character on First Line kludge. That is,
the list view is only used to list replacement words and the result of
a spell check is displayed in another (cleaner) manner.
If you use ISpell, please give this beast a work out. Feel free to
tell me what you like and hate about the implementation (proposed and
actual). New feature ideas will be welcomed.
Regards and thanks for reading this document (in its rough form :-),
Loren J. Rittle
rittle@comm.mot.com
Sun Sep 27 21:47:10 1992